﻿
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;

namespace Jurassic_Island
{
    public class CADObjeto
    {
        static private String cadenaConexion = ConfigurationManager.ConnectionStrings["JurassicBDConnectionString"].ConnectionString;

        public DataSet ObtenerTablaObjetos()
        {
            DataSet dsObjeto = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "select nombre_obj as 'Nombre Objeto', coste_obj as 'Coste Objeto', imagen_obj as 'Imagen Objeto' from Objetos";
                SqlDataAdapter daObjeto = new SqlDataAdapter(consulta, conexion);
                daObjeto.Fill(dsObjeto, "Objetos");
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return dsObjeto;
        }

        public DataSet ObtenerFitradoObjetos(string filtro)
        {
            DataSet dsObjeto = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "select nombre_obj as 'Nombre Objeto', coste_obj as 'Coste Objeto', imagen_obj as 'Imagen Objeto' from Objetos where nombre_obj like '%" + filtro + "%'";
                SqlDataAdapter daObjeto = new SqlDataAdapter(consulta, conexion);
                daObjeto.MissingSchemaAction = MissingSchemaAction.AddWithKey;
                daObjeto.Fill(dsObjeto, "Objetos");
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return dsObjeto;
        }

        //Inserta un objeto en la base de datos en modo desconectado
        public bool ActualizarObjetos(DataSet dsObjetos)
        {
            bool resultado = false;

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "select nombre_obj as 'Nombre Objeto', coste_obj as 'Coste Objeto', imagen_obj as 'Imagen Objeto' from Objetos";
                SqlDataAdapter daObjeto = new SqlDataAdapter(consulta, conexion);
                SqlCommandBuilder cb = new SqlCommandBuilder(daObjeto);
                daObjeto.Update(dsObjetos, "Objetos");

                resultado = true;
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return resultado;
        }

        public bool ExisteObjeto(string nombre)
        {
            bool existe = false;
            DataSet dsObjeto = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "select nombre_obj as 'Nombre Objeto' from Objetos where nombre_obj LIKE '" + nombre + "'";
                SqlDataAdapter daObjeto = new SqlDataAdapter(consulta, conexion);
                daObjeto.Fill(dsObjeto, "Objetos");

                if(dsObjeto.Tables["Objetos"].Rows.Count > 0)
                    existe = true;
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return existe;
        }

        public DataSet ObtenerObjetoPorNombre(string nombre)
        {
            DataSet dsObjeto = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "select * from Objetos where nombre_obj LIKE '" + nombre + "'";
                SqlDataAdapter daObjeto = new SqlDataAdapter(consulta, conexion);
                daObjeto.Fill(dsObjeto, "Objetos");
            }

            catch (Exception ex)
            {
                throw (ex);
            }

            return dsObjeto;
        }

        public DataSet ObtenerTablaObjetosPorFinal(string NombreFinal)
        {
            DataSet dsObjeto = new DataSet();

            try
            {
                SqlConnection conexion = new SqlConnection(cadenaConexion);
                String consulta = "select nombre_obj as 'Nombre Objeto', coste_obj as 'Coste Objeto', imagen_obj as 'Imagen Objeto' from Objetos,Objetos_Finales,Finales where nombre_obj=nombreobjeto_objfin and nombrefinal_objfin=nombre_fin and nombre_fin='" + NombreFinal + "'";
                SqlDataAdapter daObjeto = new SqlDataAdapter(consulta, conexion);
                daObjeto.Fill(dsObjeto, "Objetos");
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return dsObjeto;
        }
    }
}

